home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
NeXTSTEP 3.1 [x86]
/
NeXT Step 3.1 Intel.cdr.dmg
/
private
/
etc
/
uucp
/
UUAIDS
/
uucpsummary
< prev
next >
Wrap
Text File
|
1993-04-14
|
5KB
|
241 lines
#!/bin/sh
PATH=:/bin:/usr/bin:/usr/ucb
export PATH
rm -f /tmp/cmds /tmp/callsto /tmp/callsfrom /tmp/inuse /tmp/outuse
touch /tmp/cmds /tmp/inuse /tmp/outuse
cd /usr/spool/uucp
if [ $# -gt 0 ]
then
what="$1/uucico/* $1/uux*/* $1/xferstats/*"
else
if [ -f LOGFILE ]
then
what="LOGFILE SYSLOG"
else
what="LOG/uucico/* LOG/uux*/* LOG/xferstats/*"
fi
fi
sed -e "s/PATH=.*PATH;//
/REQUEST/d" $what |
/bin/awk '
BEGIN { fmon = fday = ftime = 99
lmon = lday = ltime = 0 }
$4 ~ /SUCCEEDED|OK/ {
t = substr($3,index($3,"-")+1,5)
split(t,time,":")
if($5 !~ /conversation/) {
startup[$2] = time[1]*60+time[2]
date[$2] = substr($3, 2, index($3,"-")-2)
}
}
$4 ~ /FAILED|CAUGHT|OK|TIMEOUT/ {
if(startup[$2] == 0 || $5 ~ /startup/)
continue
t = substr($3,index($3,"-")+1,5)
split(t,time,":")
elapsed = time[1]*60+time[2] - startup[$2]
if (elapsed < 0 )
elapsed += 24*60
if (elapsed == 0)
elapsed = 1
if(callto[$2] ){
totcallto[$2] += elapsed
numcallto[$2]++
printf("%s\t%s\t%02d:%02d - %02d:%02d\n",$2,date[$2],startup[$2]/60,startup[$2]%60,time[1],time[2])>>"/tmp/callsto"
}else{
totcallby[$2] += elapsed
numcallby[$2]++
printf("%s\t%s\t%02d:%02d - %02d:%02d\n",$2,date[$2],startup[$2]/60,startup[$2]%60,time[1],time[2])>>"/tmp/callsfrom"
}
callto[$2] = 0
startup[$2] = 0
}
$4 ~ /SUCCEEDED/{
if ($5 ~ /call/)
callto[$2]++
}
$4 ~ /FAILED|CAUGHT/{
if ($5 ~ /call|conversation|SIGNAL/ )
failed[$2]++
}
$5 ~ /sent/{
sentbytes[$2] += $7
sentfiles[$2] ++
seconds[$2] += $9
retries[$2] += $11
havout = 1
outuse[$1] = $1
outusebytes[$1] += $7
outusefiles[$1] ++
outusesecs[$1] += $9
}
$5 ~ /received/{
recbytes[$2] += $7
recfiles[$2] ++
seconds[$2] += $9
retries[$2] += $11
havin = 1
inuse[$2 "!" $1] = $2 "!" $1
inusebytes[$2 "!" $1] += $7
inusefiles[$2 "!" $1] ++
inusesecs[$2 "!" $1] += $9
}
$5 ~/XQT/{
if( $7 ~ /!|@/ && $6 ~ /rmail/)
printf("%s\t%s\t%-8s\t%s\n",substr($3,2,index($3,"-")-2),substr($3,index($3,"-")+1,5),$2 "!" $4,$7)>>"/tmp/cmds"
}
$4 ~/XQT/{
if ($1 ~ /uucp|daemon|root|news/ || $7 != "rmail")
continue
printf("%s\t%s\t%-8s\t%s!%s\n",substr($3,2,index($3,"-")-2),substr($3,index($3,"-")+1,5),$1,$2,$7)>>"/tmp/cmds"
}
$10 ~/secs/ {
curtime = substr($4, 5, 6)
dtmp = curtime - int($9) - lasttime[$2]
if (dtmp > 0 && dtmp < 20)
dead[$2] += dtmp
lasttime[$2] = curtime
live[$2] += $9
}
{
n = index ($3, "/")
thismon = 0
if (n > 0 ) {
thismon = int(substr($3, 2, n-2))
if (lmon < thismon)
lmon = thismon
if (thismon < fmon)
fmon = thismon
}
m = index ($3, "-")
n++
thisday = 0
if( (m-n) > 0 ) {
thisday = int(substr($3, n, m-n))
if ((lday < thisday) && (lmon == thismon) || ldaymon != lmon) {
lday = thisday
ldaymon = thismon
}
if ((thisday < fday) && (fmon == thismon) || fdaymon != fmon) {
fday = thisday
fdaymon = thismon
}
}
thistime = substr($3,m+1,5)
if ((ltime < thistime) && (lmon == thismon) && (lday == thisday))
ltime = thistime
if ((thistime < ftime) && (fmon == thismon) && (fday == thisday))
ftime = thistime
}
END{
printf("\n\t\t\t\tUUCP Traffic Summary\n\n")
printf("\t\t\t\tFrom %d/%d %s To %d/%d %s\n\n",fmon,fday,ftime,lmon,lday,ltime)
printf("\t Calls Minutes Files Bytes Effective Unused\n")
printf("Site[Failed] To/From To/From To/From Sent/Received Baudrate Bandwidth\n")
for( i in startup ){
if(seconds[i]== 0)seconds[i]++
if(dead[i]+live[i])
percent = dead[i]*100/(dead[i]+live[i])
else
percent = 0
if (failed[i] || retries[i]) {
temp = i "[" failed[i]
if (retries[i])
temp = temp "/" retries[i] "]"
else
temp = temp "]"
} else
temp = i
printf("%-12s %3d/%-3d %5d/%-5d %4d/%-4d %8d/%-8d %6d %5d%%\n",\
temp,numcallto[i],numcallby[i],\
totcallto[i],totcallby[i],\
sentfiles[i],recfiles[i],\
sentbytes[i],recbytes[i],\
(recbytes[i]+sentbytes[i])*8/seconds[i],\
percent)
}
printf("\n\n\n\t\t\t\tOriginating Users\n\n")
printf("User\t\t Minutes Files Bytes\n\n")
if (havout == 1) {
for (i in outuse) {
printf("%-21s %5d %7d %8d\n", i,\
(outusesecs[i]+30)/60,\
outusefiles[i], outusebytes[i]) >> "/tmp/outuse"
}
}
if (havin == 1) {
for (i in inuse) {
printf("%-21s %5d %7d %8d\n", i,\
(inusesecs[i]+30)/60,\
inusefiles[i], inusebytes[i]) >> "/tmp/inuse"
}
}
}'
sort /tmp/outuse
echo " "
sort /tmp/inuse
echo " "
echo " "
echo " "
echo " Long Distance Calls"
echo
echo "To Day Start - End From Day Start - End"
cat >/tmp/$$local<<!!!
/^ut/d
!!!
sed -f /tmp/$$local /tmp/callsto | /bin/awk '
{
if (last == $1)
pr = ""
else {
last = $1
pr = $1
}
if (pr == "" && date == $2)
pd = ""
else {
date = $2
pd = $2
}
printf("%s\t%s\t%s - %s\n",pr,pd,$3,$5)
}'>/tmp/$$a
sed -f /tmp/$$local /tmp/callsfrom | /bin/awk '
{
if (last == $1)
pr = ""
else {
last = $1
pr = $1
}
if (pr == "" && date == $2)
pd = ""
else {
date = $2
pd = $2
}
printf("%s\t%s\t%s - %s\n",pr,pd,$3,$5)
}'>/tmp/$$b
pr -t -m /tmp/$$a /tmp/$$b | uniq
rm -f /tmp/$$[ab]
sed -e "
/rmail seismo!/d
/rmail rlgvax!/d
/rmail rochester!/d
/rmail umcp-cs!/d
/rmail brl-tgr!/d
/rmail brl-vgr!/d
s/)$//
" /tmp/cmds >/tmp/$$c
if [ -s /tmp/$$c ]
then
echo " "
echo " "
echo " "
echo " Outgoing Mail from Other Sites"
echo
echo "Day Time From To"
cat /tmp/$$c
fi
rm -f /tmp/cmds /tmp/$$* /tmp/callsto /tmp/callsfrom /tmp/inuse /tmp/outuse